#include <LiquidCrystal_I2C.h>  // LCD1602屏幕驱动库

LiquidCrystal_I2C lcd(0x27, 16, 2);  //设置LCD1602设备地址0x27，16列2行

const int TrigPin = 8;  //定义超声波的Trig口
const int EchoPin = 9;  //定义超声波的echo口
float distance;         //定义距离变量

void setup() {
  lcd.init();                // 初始化lcd
  lcd.backlight();           // 打开lcd背光
  pinMode(TrigPin, OUTPUT);  //设置输出模式
  pinMode(EchoPin, INPUT);   // 要检测引脚上输入的脉冲宽度，需要先设置为输入状态
}

void loop() {

  // 产生一个10us的高脉冲去触发TrigPin
  digitalWrite(TrigPin, LOW);
  delayMicroseconds(2);  //延时2ms
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);  //延时10ms
  digitalWrite(TrigPin, LOW);

  distance = pulseIn(EchoPin, HIGH) / 58.00;  // 检测脉冲宽度，把测得的距离赋值给distance变量
  lcd.setCursor(0, 0);                        //液晶显示第一行位置,第一列
  lcd.print("distance:");                     //显示字符串
  lcd.setCursor(5, 1);                        //液晶显示第二行位置,第六列
  lcd.print(distance);                        //液晶屏显示距离的值
  lcd.print("cm");                            //显示字符串
  delay(1000);                                //延时
  lcd.clear();                                //清屏
}